import RelObj from './RelObj'
import { mergeOptions } from './RelObjOptions'

export default function(Vue) {
  // mergeOptions(options)
  Vue.mixin({
    data() {
      if (this.$options === undefined || this.$options.relObjs === undefined || this.$options.relObjs === null) {//有relObjs的配置时才新建relObj对象。
        return {}
      }
      const relObj = new RelObj()
      relObj.owner = this   
      return {
        relObj
      }
    },
    created() {
      if (!(this.relObj instanceof RelObj)) {   //上面data中return了relObj，这里通过this.resObj就可以获取到。
        return
      }
      // debugger
      // options.onCreated && options.onCreated(this.dict)  // 打印出来，options.onCreated返回的是undefined，全局都没有地方有onCreated，是不是又可能vue的其他组件会使用这个方法。
      this.relObj.init(this.$options.relObjs).then(() => {  //拿到 relObj以后，调用它的init方法。
        //这里为什么要onReady?但实际没有定义这个方法。
        // options.onReady && options.onReady(this.dict)  
        // this.$nextTick(() => {
        //   this.$emit('dictReady', this.dict)
        //   if (this.$options.methods && this.$options.methods.onDictReady instanceof Function) {
        //     this.$options.methods.onDictReady.call(this, this.dict)
        //   }
        // })
      })
    },
  })
}
